#ifndef IEDITOR_AREA_H
#define IEDITOR_AREA_H

#include <QtCore/QSharedPointer>

namespace core
{
class IDocument;
class IEditor;

class IEditorArea
{
public:
    virtual uint openedEditorsCount() const = 0;

    virtual QList<QSharedPointer<IEditor> > openedEditors(
        const QSharedPointer<IDocument>& document) const = 0;

    virtual QSharedPointer<IEditor> currentEditor() const = 0;

    virtual void openEditor(const QSharedPointer<IDocument>& document) = 0;
    virtual void closeEditor(const QSharedPointer<IEditor>& editor) = 0;
    virtual void confirmClose(const QSharedPointer<IEditor>& editor) = 0;

    virtual ~IEditorArea() {}
};

} // namespace core

#endif
